1. Field of the Invention
The present invention relates to communication systems, and more particularly, to an apparatus that allows random access to information pertaining to the number of output ports that have transmitted copies of designated data frames.
2. Description of the Related Art
Modern communication systems, such as computer networking systems or communication networks, provide constant transmission of data between end stations and/or intermediate stations such as routers and signal amplifiers. Computer networking systems, such as packet switched networks (e.g., Ethernet networks), often require transmission of data to a single end station or to multiple end stations within the network. The data originates from a user program and is segmented into multiple data frames, and subsequently transmitted in order to simplify processing and minimize the retransmission time required for error recovery. For example, in a conventional e-mail system, a user may desire to send the same e-mail message to four different users that are connected to the e-mail system. Accordingly, the identical data would be directed to multiple end stations.
Packet switched computer networks typically employ a network switch that receives and forwards data frames to individual and/or multiple end stations. The network switch makes forwarding decisions upon receipt of data frames based on information contained in a header of the data frame. For example, if a received data frame is to be transmitted to a number of end stations, the switch must make the forwarding decision to forward the data frame to the ports of the correct end stations. Depending on the specific implementation and/or characteristic of the networking system (i.e., data transfer rate, traffic intensity, etc.), buffers must be provided for temporary storage of the data frames, received by the switch, until forwarding decisions can be made. The buffers used to store the data frames are often implemented as first in, first out (FIFO) queues.
Buffering the data as it is received allows, for example, robust error checking to be performed on the data frames, and also permits rate matching between transmitting and receiving ports. When data frames arrive at a network switch, only buffers that are currently available (i.e., xe2x80x9cfreexe2x80x9d) may be used to store the data frames, in order to prevent overwriting of a first data frame by a second data frame prior to transmission.
In systems that employ multiple buffers to store a single data frame, the network switch monitors the transmission of all data frames. In addition, it is often necessary to transmit multiple copies of the same data frame to different network stations. Such situations require that the network switch closely monitor the system to ensure that all copies of the data frame have been either transmitted or accounted for. The network switch may also include various components that maintain information regarding the number of copies of data frames that have been successfully transmitted. Therefore, it is necessary to continually update the status of all data frames that must be transmitted by multiple output ports. Depending on the specific implementation of the system, updating the status of such data frames can often be very time consuming, particularly when multiple components of the network switch maintain or use information pertaining to the number of output ports that have completed transmission of their copy of the data frame.
Based on the foregoing, a primary disadvantage associated with current methods of transmitting multiple copies of the same data within communication systems, such as a packet switched computer networking system, is the amount of time required to update multiple components of the switch with copy number information for multicast data frames.
There is a need for an arrangement that allows various components of a network switch to quickly obtain information regarding the number of copies of a received data frame remaining to be transmitted by various output ports of a network switch.
These and other needs are addressed by the present invention, wherein a multiport switch maintains copy information, pertaining to the number of copies of a received data frame that have been transmitted, in a random access storage area that may be accessed by various components of the multiport switch.
In accordance with one aspect of the present invention, an apparatus for maintaining copy information pertaining to data frames received by a multiport switch that forwards received data frames to plural output ports comprises: a random access storage area and a control logic, both of which are located on the chip. The random access storage area stores a copy information that indicates the number of output ports that have not yet transmitted their copy of a designated data frame. The control logic addresses locations within the random access storage area using frame pointers that identify where the received data frames are stored in an external memory. Each frame pointer includes at least two portions that are used by the control logic to address a specific row location and specific column location of a cell within the random access storage area where the copy number value of a designated data frame is stored. Depending on the specific implementation, the random access storage area can be configured to provide read access to all components of the multiport switch, while additionally providing write access to the control logic. The present arrangement advantageously minimizes the amount of time required to update copy number information for the multiport switch by storing the information in a random access storage area.
According to one embodiment of the present invention, the random access storage area is physically configured as a matrix containing 1,024 rows, and 8 columns that are 4-bits wide. In addition, each frame pointer is thirteen (13) bits long. The control logic uses the ten (10) most significant bits of the frame pointer to address the specific row location of cells within the random access storage area, and the three (3) least significant bits to address specific column location of cells within the random access storage area.
In accordance with another aspect of the present invention, a method of randomly accessing copy information for received data frames from a random access storage area of a multiport switch comprises the steps: retrieving a frame pointer that identifies the location of a designated data within an external memory area; decoding the retrieved pointer to indicate a specific row and specific column of the decoded cell of the random access storage area where a copy number value for the designated data frame is stored; and reading the copy number value stored in the decoded cell of the random access storage area. The present arrangement provides an efficient method for any and all components of the multiport switch to determine copy information regarding multicast data frames.
Additional advantages and novel features of the present invention will be set forth in part in the description which follows, and in part will become apparent to those skilled in the art upon examination of the following, or may be learned by practice of the invention. The advantages of the invention may be realized and attained by means of the instrumentalities and combinations particularly pointed out in the appended claims.